Holding apparatus, container provided with tag, object holding program and object holding method

ABSTRACT

A holding apparatus includes a first detection unit configured to detect an indicated holding object, a second detection unit configured to detect, when the first detection unit detects the holding object, a tag proximate to the holding object, and a holding part configured to hold a container provided with the tag based on tag information of the tag detected by the second detection unit.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is based upon and claims the benefit of priority fromJapanese patent application No. 2018-96213, filed on May 18, 2018, thedisclosure of which is incorporated herein in its entirety by reference.

BACKGROUND

The present disclosure relates to a holding apparatus, a containerprovided a tag, an object holding program, and an object holding method.

Techniques for holding an object with a robot hand have been widely putinto practical use. A holding apparatus that can hold even an objectwhich is difficult to be held by performing a learning work for theobject is also known (e.g., see Japanese Unexamined Patent ApplicationPublication No. 2007-216381).

SUMMARY

When an object to be held by a holding apparatus is small or has acomplicated shape, it is difficult to hold it directly. It may not bepossible to hold a target object in the first place due to structurallimitations of a hand part of the holding apparatus. When the object iscontained in a transparent container, the holding apparatus canrecognize the object but cannot recognize the container which containsthe object, thereby consequently leading to a failure to hold the objectin some cases.

The present disclosure provides a holding apparatus capable of holdingan object indirectly when the object to be held is indicated.

A first example aspect of the present disclosure is a holding apparatusincluding: a first detection unit configured to detect an indicatedholding object; a second detection unit configured to detect, when thefirst detection unit detects the holding object, a tag proximate to theholding object; and a holding part configured to hold a containerprovided with the tag based on tag information of the tag detected bythe second detection unit.

When the holding object is contained in the container provided with thetag, and when the information about the container and the informationrelated to the holding are embedded in the tag, the holding apparatuscan indirectly hold the object by holding the container even if theholding part cannot structurally hold the object directly. Further, auser can directly specify the holding object which he/she wants theholding apparatus to hold instead of specifying the container to be heldat the stage of instructing the holding apparatus to perform theholding, which eliminates the need for the user to concern about thecontainer which contains the holding object. Further, when the containercan be recognized in advance from the tag information, the holdingapparatus does not attempt to directly hold the holding object even whenthe container is transparent and an outer shape thereof cannot beaccurately detected. Moreover, the user does not need to perform anoperation to associate the container with the holding object in advance,and the holding apparatus can indirectly hold any holding object as longas it can be contained in the container and can be detected by the firstdetection unit. It is obvious that the holding apparatus does not needto perform learning work and the like in advance.

In particular, when the tag information includes at least one of theshape information of the container and the holding position informationof the container, the holding apparatus can easily determine how to holdthe container, which enables a holding operation to be quickly andefficiently executed. Further, when the tag is a marker of atwo-dimensional code, and when the holding part is configured to holdthe container based on the tag information and a position of the marker,one camera can be used as the first detection unit and the seconddetection unit. In this case, it is not necessary to embed muchinformation in the tag information because only the information abouthow to hold the container with respect to the position of the marker hasto be embedded in the tag information, and thus the tag with a simpletwo-dimensional code can be achieved.

In the above holding apparatus, when the indicated holding object is notincluded in a predetermined holding object group, the holding part mayhold the indicated holding object without the tag being detected by thesecond detection unit. When the object to be contained in the containerand indirectly held is predetermined, it is possible to avoid trouble indetecting the tag when another holding object is indicated. Further,when the object can be directly held, the holding object can be morestably held.

A second example aspect of the present disclosure is a containerprovided with the above tag and formed of a translucent material to beheld by the above holding apparatus. A contained object contained in thecontainer formed of the translucent material can be observed by a camerafrom the outside, and thus the holding apparatus can indirectly hold theholding object even when the indicated holding object is surrounded bythe container. Moreover, the shape of the container may be deep bottomor a covered container as long as a material thereof is translucent, andthus it is possible to more stably hold the holding object. Furthermore,the user only needs to put the object to be held by the holdingapparatus in such a container and place it on, for example, a shelf,which achieves easily management of the object and eliminates the needfor troublesome preparation work.

A third example aspect of the present disclosure is an object holdingprogram causing a computer to execute: controlling a first detectionunit to detect an indicated holding object; controlling a seconddetection unit to detect, when the holding object is detected in thecontrolling of the first detection unit, a tag proximate to the holdingobject; and controlling a holding part to hold a container provided withthe tag based on tag information of the tag detected in the controllingof the second detection unit.

A fourth example aspect of the present disclosure is a target holdingmethod including: putting a holding object in a container provided witha tag and formed of a translucent material; indicating a holding object;and controlling a holding apparatus to hold the container containing theholding object indicated in the indicating. The controlling includes:controlling a first detection unit to detect the holding objectindicated in the indicating; controlling a second detection unit todetect, when the holding object is detected in the controlling of thefirst detection unit, the tag proximate to the holding object; andcontrolling a holding part to hold a container provided with the tagbased on tag information of the tag detected in the controlling of thesecond detection unit. The third and fourth example aspects can achievethe same effect as that achieved by the first example aspect.

According to the present disclosure, it is possible to provide a holdingapparatus capable of holding an object indirectly when an object to beheld is indicated.

The above and other objects, features and advantages of the presentdisclosure will become more fully understood from the detaileddescription given hereinbelow and the accompanying drawings which aregiven by way of illustration only, and thus are not to be considered aslimiting the present disclosure.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 is an external perspective view of a moving robot including aholding apparatus;

FIG. 2 is a control block diagram of a moving robot;

FIG. 3 is a view showing a state in which a hand unit performs a holdingoperation;

FIG. 4 is a flowchart for explaining a series of processes of the movingrobot;

FIG. 5 is a flowchart describing an entire procedure for achievingtransportation of a transporting object;

FIG. 6 is an external perspective view of a moving robot according to afirst modified example;

FIG. 7 is a view showing a state in which a hand unit according to afirst modified example performs a holding operation; and

FIG. 8 is a view showing a state in which a hand unit according to asecond modified example performs a holding operation.

DESCRIPTION OF EMBODIMENTS

FIG. 1 is an external perspective view of a moving robot 100 including aholding apparatus according to this embodiment. In the drawing, an xyplane is a traveling plane of the moving robot 100, and a z-axispositive direction is a vertical direction. The moving robot 100 ismainly composed of a cart part 110, a main body part 120, an arm unit130, and a hand unit 140. The arm unit 130 and the hand unit 140constitute the holding apparatus.

The cart part 110 supports two driving wheels 111 and one caster 112,each of which is grounded on a traveling surface, in a cylindricalhousing. The two driving wheels 111 are arranged so that rotational axesthereof coincide. Each of the driving wheels 111 is rotatedindependently by a motor (not shown). The caster 112 is a trailingwheel. The caster 112 is disposed in such a way that a pivot shaftextending from the cart part 110 in the vertical direction pivotallysupports the wheel away from a rotation axis of the wheel. The caster112 follows the cart part 110 in a direction in which the cart part 110moves. For example, the moving robot 100 moves straight if the twodriving wheels 111 are rotated at the same rotation speed in the samedirection, while it turns around a vertical axis passing through acenter of the two driving wheels 111 of the cart part 110 if the twodriving wheels 111 are rotated at the same rotation speed in thedirections opposite to each other.

The main body part 120 supports the arm unit 130 and includes a displaypanel 123 which constitutes a part of a user interface. The displaypanel 123 is, for example, a liquid crystal panel, and displays a faceof a character and presents information about the moving robot 100. Thedisplay panel 123 includes a touch panel on its display surface, and canaccept instructions input from a user.

The main body part 120 includes an environment camera 121 at a positionoverlooking a front environmental space including an operation range ofthe arm unit 130 and the hand unit 140. The environment camera 121includes, for example, an image pickup element, which is a CMOS imagesensor, and an image data generation unit. The environment camera 121outputs image data generated by photographing the front environmentspace. The main body part 120 includes a control unit 190. The controlunit 190 includes a controller, a memory, etc., which will be describedlater.

The arm unit 130 supported by the main body part 120 is an example of anarm part, and includes, for example, two links as shown in the drawing.The arm unit 130 can be in various postures by driving motors (notshown) provided at the respective base ends of the links. The hand unit140 is connected to a distal end part of the arm unit 130. The entirehand unit 140 can turn by a motor (not shown) around a turn axis that isparallel to a direction in which the distal links of the arm unit 130extend. The hand unit 140 is an example of a holding part, and includesa first finger 140 a and a second finger 140 b that are driven by amotor (not shown) at a distal end part thereof. The first finger 140 aand the second finger 140 b operate to approach each other as indicatedby dotted arrows and achieve holding of an object by sandwiching theobject.

A hand camera 141 is disposed at a support base part of the first finger140 a and the second finger 140 b of the hand unit 140. The hand camera141 includes, for example, an image pickup element, which is a CMOSimage sensor, and an image data generation unit. The hand camera 141outputs image data generated by photographing a front space of the handunit 140. The hand camera 141 functions as a first detection unit thatdetects an indicated holding object. The hand camera 141 also has afunction as a second detection unit that detects a marker as a tagproximate to the holding object.

FIG. 2 is a control block diagram of the moving robot 100. Thecontroller 200 is, for example, a CPU, and is stored in the control unit190 of the main body part 120. A driving wheel unit 210 includes adriving circuit and a motor for driving the driving wheels 111, and isprovided in the cart part 110. The controller 200 sends a driving signalto the driving wheel unit 210 to thereby control the rotations of thedriving wheels 111.

The arm unit 130 further includes an encoder and so on for monitoringthe driving circuit for driving the motor and an amount of operation inaddition to the structure described with reference to FIG. 1. Thecontroller 200 sends a driving signal to the arm unit 130 to therebycontrol the movement and posture of the arm. The hand unit 140 furtherincludes a driving circuit for driving the motor, an encoder formonitoring the amount of operation, and so on in addition to thestructure described with reference to FIG. 1. The controller 200 sends adriving signal to the hand unit 140 to thereby control operations andpostures of the hand.

A sensor unit 220 includes various sensors for detecting an obstacleduring movement and detecting contact from the outside. The sensors aredisposed in the cart part 110 and the main body part 120 in adistributed manner. The controller 200 sends a control signal to thesensor unit 220 to thereby drive the various sensors and obtains outputsof the sensors.

As described above, the environment camera 121 is used to observe thefront environmental space including the operation range of the arm unit130 and the hand unit 140, and photographs images according to aphotographing instruction from the controller 200. The environmentcamera 121 passes generated image data to the controller 200. Asdescribed above, the hand camera 141 is used to observe the space infront of the hand unit 140 and photographs images according to aphotographing instruction from the controller 200. The hand camera 141passes the generated image data to the controller 200.

The memory 240 is a non-volatile storage medium, and is, for example, asolid state drive. The memory 240 stores not only a robot controlprogram for controlling the moving robot 100 but also various parametervalues, functions, lookup tables, and so on used for the control. Therobot control program includes an object holding program for controllingthe arm unit 130 and the hand unit 140 which constitute the holdingapparatus.

A user IF 240 is, for example, the display panel 123 and a speaker orthe like that utters a synthesized voice, and includes an outputapparatus that provides information to the user in accordance with thecontrol by the controller 200. The user IF 240 also includes an inputapparatus such as a touch panel provided on a display surface of thedisplay panel 123 for accepting an instruction input from the user andsending an input signal to the controller 200.

The controller 200 also functions as a function calculation unit thatexecutes various calculations related to control. The hold controller201 controls the holding operation for holding the object. The holdcontroller 201 performs various calculations, which will be describedlater, and sends a driving signal to the hand unit 140 in order toexecute the holding operation of the hand unit 140 based on thecalculation result.

An example of the holding operation will be described. FIG. 3 is adiagram showing a state in which the hand unit 140 performs the holdingoperation. Here, suppose that the moving robot 100 is instructed by theuser to hold a fork 901.

As shown in the drawing, the hand unit 140 according to this embodimentincludes the first finger 140 a and the second finger 140 b thatsandwich and hold the holding object by a simple opening and closingoperation around a single axis. Each of the first finger 140 a and thesecond finger 140 b has a size of about a hand of a human being. Thus,it is structurally difficult to directly hold the fork 901.

To solve this issue, the user or an assistant puts the fork 901 in atransparent container 900 and places the transparent container 900 on atable 910 to prepare a holding environment in advance. As shown in thedrawing, the transparent container 900 has a cup shape with an open top,and is made of a translucent material such as polycarbonate or glass.The material may be colored as long as it is translucent. Since the fork901 is contained in the transparent container 900, the whole shape ofthe fork 901 can be observed from the outside. That is, the hand camera141 can observe the fork 901 in a state in which the fork 901 iscontained in the transparent container 900. The transparent container900 may not be a cup shape and instead may be a covered container thatcontains the entire fork 901. Other elements may be added to thetransparent container 900 as long as it has a size and a shape that canbe held by at least the first finger 140 a and the second finger 140 b.Note that the transparent container 900 has such rigidity that it doesnot deform even when it is sandwiched and held between the first finger140 a and the second finger 140 b.

Markers 902 are attached to an outer circumferential surface of thetransparent container 900. In this embodiment, a plurality of themarkers 902 are attached to the transparent container 900 in a radialdirection thereof so that the hand unit 140 may approach from anydirection. The marker 902 is a tag in which information including atleast one of shape information of the transparent container 900 andholding position information of the transparent container 900 isembedded in a two-dimensional code. In the shape information, a surfaceshape of the transparent container 900 is represented by a function, orall vertices thereof are expressed by three-dimensional coordinates withthe center of the marker 902 as a coordinate center. In the holdingposition information, a position at which the transparent container 900is stably held with the first finger 140 a and the second finger 140 bis expressed as a function representing an area or expressed as a pointin three-dimensional coordinates with the center of the marker 902 as acoordinate center.

When the moving robot 100 is instructed to hold the fork 901, the holdcontroller 201 analyzes the image data obtained from the hand camera 141and first detects the fork 901. To detect the fork 901, for example,YOLO known as a real-time object detection algorithm can be used.

When the fork 901 is detected, the hold controller 201 searches for themarker 902 proximate to the fork 901 from the image data in which thefork 901 is detected. When the marker 902 cannot be detected from thisimage data or only a part thereof can be detected from this image data,the hand unit 140 is moved near the detected fork 901, and the imagedata is obtained again from the hand camera 141 to search for anothermarker 902 proximate to the fork 901. Specifically, the marker 902closest to the area where the fork 901 is detected is detected as aproximate marker. When the marker 902 cannot be detected from the imagedata in which the fork 901 is detected, the image data is obtained whilegradually lowering a photographing position in a vertical direction froma position where the fork 901 is detected, and the marker 902 determinedthat it is the most proximate to the fork 901 from an amount of movementof the hand unit 140 is detected.

When the marker 902 is detected, the hold controller 201 analyzes amarker image in the image data and extracts tag information related tothe transparent container 900. When the shape information of thetransparent container 900 is extracted, a holding position at which thetransparent container 900 can be stably held with the first finger 140 aand the second finger 140 b is calculated from the shape information,and a holding operation at the holding position is executed. When theholding position information of the transparent container 900 isextracted, the holding operation at the holding position specified bythe holding position information is executed. As described above, thehold controller 201 controls the hand unit to hold the fork 901specified by the user via the transparent container 900.

In this way, when the holding object is contained in the transparentcontainer provided with the markers, and when the information about thetransparent container and the information related to the holding areembedded in the markers, the hand unit can indirectly hold the holdingobject by holding the transparent container even if it cannot directlyhold the holding object structurally. Further, the user can directlyspecify the holding object which he/she wants the moving robot 100 tohold instead of specifying the transparent container to be held at thestage of instructing the moving robot 100 to perform the holding, whicheliminates the need for the user to concern about the transparentcontainer which contains the holding object. In other words, it is notnecessary for the user to check which transparent container the holdingobject is contained and to specify the transparent container to be held.In other words, the user does not need to perform an operation toassociate the container with the holding object in advance and insteadthe user only needs to put the holding object in any transparentcontainer provided with the markers and then place the transparentcontainer on a table or a shelf.

Moreover, when the holding object is contained in the transparentcontainer, it is difficult to accurately acquire the shape of thetransparent container from the image of the image data. However, sincethe hold controller 201 can obtain information necessary for the holdingfrom the tag information of the markers, the user does not need toaccurately acquire the shape of the transparent container. In otherwords, since the hold controller 201 can acquire that the holding objectis contained in the transparent container when it can detect the marker,it does not control the hand unit to forcedly hold the holding objectdirectly.

Further, the tag information for the hand unit to stably hold thetransparent container can be described in various ways. When the taginformation includes the shape information and the holding positioninformation of the transparent container, the hold controller 201 caneasily determine how to hold the transparent container, which enablesthe holding operation to be quickly and efficiently executed. Further,when the tag information is embedded in the marker, the shape of thetransparent container and the holding position can be defined withreference to the position of the marker attached to the transparentcontainer. Then, it is not necessary to embed much information in thetag information, and thus the tag with a simple two-dimensional code canbe achieved.

Next, a series of holding and transporting processing including theholding operation described with reference to FIG. 3 will be described.FIG. 4 is a flowchart for explaining the series of holding andtransporting processing of the moving robot 100.

In Step S101, the controller 200 accepts, from the user via the user IF240, the instruction indicating the transporting object to be retrieved.The controller 200 reads out the environment map from the memory 250,identifies a storage location (e.g., a shelf or a table) where theindicated transporting object is stored, and plans a movement path tothe storage location. Then, in Step S102, the moving robot 100 movesautonomously along the planned movement path and stops when it reachesnear the storage location.

In Step S103, the hold controller 201 drives the arm unit 130 and thehand unit 140 to analyze the image data sequentially obtained from thehand camera 141, and searches for the holding object which is theindicated transporting object. When the holding object is detected, theprocess proceeds to Step S104.

In Step S104, the hold controller 201 determines whether the hand unit140 can directly hold the holding object. In the example described withreference to FIG. 3, it is assumed that the holding object is containedin the transparent container. However, the transporting object indicatedby the user (i.e., the holding object) is not limited to things thatcannot be directly held by the hand unit 140. Things that can bedirectly held are stored in the storage location without being stored ina container. Thus, the hold controller 201 reads, from the memory 250,the lookup table in which groups of the holding objects contained andstored in the containers are listed in advance, and checks whether theholding object indicated by the user is included in the lookup table.When the holding object indicated by the user is not included in thelookup table, it is determined that the hand unit 140 can directly holdit, and the process proceeds to Step S105. When the holding objectindicated by the user is included in the lookup table, it is determinedthat the hand unit 140 cannot hold it directly, and the process proceedsto Step S106.

When the process proceeds to Step S105, the hold controller 201 executesthe holding operation for holding the holding object detected in StepS103. After the holding object is held, the process proceeds to StepS109.

When the process proceeds to Step S106, the hold controller 201 searchesfor the marker 902 which is the tag proximate to the holding object fromthe image data in which the holding object is detected. When the marker902 cannot be detected from this image data or only a part thereof canbe detected from this image data, the hand unit 140 is moved near thedetected holding object, and the image data is obtained again from thehand camera 141 to search for the marker 902 proximate to the holdingobject. When the marker 902 can be detected, the hold controller 201analyzes the marker image in the image data and extracts the taginformation related to the transparent container 900.

The process proceeds to Step S107 where the hold controller 201 sets theholding position on the transparent container 900 from the detected taginformation and plans the operations of the arm unit 130 and the handunit 140 so that the transparent container 900 can be held at theholding position. Then, in Step S108, the hold controller 201 drives thearm unit 130 and the hand unit 140 to execute the holding operation atthe holding position. After the transparent container 900 containing theholding object is held in this manner, the process proceeds to StepS109.

In Step S109, the controller 200 controls the moving robot 100 toautonomously move to the destination, which is a transport destination,and execute transporting while controlling the moving robot 100 tomaintain a holding posture for holding the holding object directly orindirectly. When the moving robot 100 reaches the destination, a seriesof processing is ended.

FIG. 5 is a flowchart for explaining the entire procedure for achievingthe transportation of the transporting object. FIG. 4 shows a processingflow executed by the controller 200 of the moving robot 100, whereasFIG. 5 is a flowchart of a transportation method including work of theuser or assistant to achieve the transportation of the object using themoving robot 100.

In Step S201, the user or assistant puts an object that can be held inany transparent container 900 to which markers are attached. In StepS202, the user or assistant places the object on a table or a shelf at apredetermined location to store it. The predetermined location is alocation described as a storage location of the object in theenvironmental map stored in the memory 250 or a place newly described inthe environmental map as the storage location of the object.

When the user wants the moving robot 100 to transport an object, theuser gives an instruction about the transporting object to the movingrobot 100 in Step S203. This corresponds to Step S101 in FIG. 4 on theside of the moving robot 100. Then, in Step S204, the moving robot 100executes the indicated transporting process. This corresponds to StepsS102 to Step S109 on the side of the moving robot 100.

In Step S205, the user receives the transporting object from the movingrobot 100, and a series of transporting methods is completed. When theuser wants the moving robot 100 to transport a plurality of transportingobjects, Steps S203 to S205 may be repeated. Further, Steps S201 andS202 may be performed on the transporting object, the use of which hasbeen completed after being transported so that it can be returned to itsoriginal storage location.

Next, several modified examples will be described. FIG. 6 is an externalperspective view of a moving robot 100′ according to a first modifiedexample. The moving robot 100′ further includes a tag reader 142 inaddition to the configuration of the moving robot 100. The tag reader142 is disposed, for example, adjacent to the hand camera 141 as shownin the drawing. The tag reader 142 is an apparatus that irradiates an ICtag with radio waves and reads information recorded on the IC tag.

FIG. 7 is a view showing a state in which the hand unit 140 of themoving robot 100′ according to the first modified example performs theholding operation. Unlike the transparent container 900 to which themarkers 902 shown in FIG. 3 are attached, an IC tag 903 is attached tothe transparent container 900 according to this modified example. Atleast one of the shape information of the transparent container 900 andthe holding position information of the transparent container 900 isrecorded on the IC tag 903. Other conditions and settings are the sameas those in the example of FIG. 3.

When the hold controller 201 analyzes the image data obtained from thehand camera 141 and detects the fork 901, it drives the tag reader 142to detect the IC tag 903 proximate to the fork 901, and reads theinformation of the IC tag 903. Then, the holding position of thetransparent container 900 is set based on this information, and theholding operation is executed. Note that the position of the IC tag 903is calculated, for example, by changing the position of the tag reader142 to read the IC tag 903 and using a difference in radio waveintensity at different positions and a difference in reading positions.

In the example of FIG. 3, the two-dimensional code markers 902 are usedas the tags, and thus the hand camera 141 can be provided with twofunctions as the first detection unit that detects the indicated holdingobject and the second detection unit that detects the tag proximate tothe holding object. However, in the example of FIG. 3, it is necessaryto attach the plurality of markers 902 each having an area enough toprint a two-dimensional code to the transparent container 900. In thismodified example, the hand camera 141 is provided with a function as thefirst detection unit that detects the indicated holding object, and thetag reader 142 is provided with a function as the second detection unitthat detects the tag proximate to the holding object. That is, althoughit is necessary to implement each of the hand camera 141 and the tagreader 142 by a separate piece of hardware, the IC tag 903 is smallerthan the marker 902, and only one IC tag 903 needs to be attached to thetransparent container 900. Specifically, in this modified example, it isless likely to impair the design property of the transparent container900, and further, attaching the IC tag 903 is easy.

FIG. 8 is a diagram showing a state in which the hand unit 140 accordingto the second modified example performs the holding operation. In theexamples of FIGS. 3 and 7, the fork 901 is contained in the transparentcontainer 900. However, in this modified example, the fork 901 iscontained in a relatively shallow opaque container 904. Other conditionsand settings are the same as those in the example of FIG. 3.

In the above examples, the transparent container 900 is used because theholding object contained therein can be satisfactorily detected. Thatis, the transparent container enables the hand camera 141 to photographthe entire holding object, which contributes to improving the detectionaccuracy of the holding object. However, any container may be used aslong as the holding object contained therein can be detected. Thus, inthis modified example, the opaque container 904, which is a shallow andopaque container, is used. In the opaque container 904, about a half ofthe fork 901 to be contained is exposed to the outside. Like in thiscase, the hold controller 201 can recognize the fork 901 if about a halfof the contained fork 901 is exposed to the outside.

Like the transparent container 900, a plurality of markers 902 areattached to an outer periphery of the opaque container 904. After thefork 901 is detected, the hold controller 201 detects the marker 902,sets the holding position of the opaque container 904 based on the taginformation read from the marker 902, and executes the holdingoperation.

The level of the exposure of the contained holding object from theopaque container 904 varies depending on the shape of the holdingobject, the way the holding object is contained in the opaque container904, etc. For example, it is easy to detect the fork 901 by imageanalysis if a characteristic comb-shaped leading end part of the fork901 is exposed, and thus most of the handle part of the fork 901 may behidden in the opaque container 904. Further, in this modified example,the IC tag 903 may be attached instead of attaching the marker 902. Insuch a case, it is necessary to include the tag reader 142 as the handunit 140.

Although this embodiment including the modified examples has beendescribed so far, the holding object contained in the transparentcontainer 900 or the opaque container 904 is not limited to the singlefork 901. A plurality of forks may be contained, or a spoon(s) may becontained. When the user specifies a fork as the holding object, andwhen it is allowed that the spoon together with the fork are held, boththe fork and the spoon may be contained. It is obvious that the holdingobject is not limited to small objects such as a fork and a spoon, andinstead a relatively large object which is difficult to be held may becontained in a container and held. On the contrary, a very small objectwith respect to the holding part is also suitable for being contained ina container and held. Furthermore, when the user wants the moving robot100 to hold an object present in a liquid such as living fish in seawater, the object may be contained together with the liquid in thetransparent container 900, so that the object can be reliably held viathe transparent container 900. Additionally, an easily deformable objectsuch as a food item is also suitable for being contained in a containerand held.

In the above-described embodiment, the first finger 140 a and the secondfinger 140 b that sandwich and hold the holding object by an opening andclosing operation around a single axis are described as examples of theholding part. However, the holding part may have a more complicatedstructure. For example, the holding part may include a plurality ofclaws or may be a holding part with multi-joint fingers like a humanhand. It may be determined whether to contain the holding object in thecontainer to indirectly hold it according to the performance of theholding part.

In the above-described embodiment, the holding object is detected usingthe image data output from the hand camera 141. However, the holdingobject may be detected using the image data output from the environmentcamera 121 disposed in the main body part 120. In this case, theenvironment camera 121 is provided with the function of the firstdetection unit. Alternatively, the environment camera 121 may photographa wide range, an area of interest may be narrowed down, and then thehand camera 141 may be used. In this case, the environment camera 121and the hand camera 141 are provided with the function of the firstdetection unit.

Further, in the above-described embodiment, although examples of thetwo-dimensional code markers 902 and the IC tag 903 have been describedas the tags, the tags that can be employed are not limited to them.Furthermore, when the tag is used, the tag is not limited to beingattached to the container and instead may be, for example, embedded in amaterial or directly printed.

In the above-described embodiment, an example in which the moving robot100 includes the holding apparatus has been explained. However, theholding apparatus may be an independent apparatus not including a movingmechanism or the like. In this case, the control unit necessary forcontrolling the holding apparatus is provided in the holding apparatus.

The program can be stored and provided to a computer using any type ofnon-transitory computer readable media. Non-transitory computer readablemedia include any type of tangible storage media. Examples ofnon-transitory computer readable media include magnetic storage media(such as floppy disks, magnetic tapes, hard disk drives, etc.), opticalmagnetic storage media (e.g. magneto-optical disks), CD-ROM (compactdisc read only memory), CD-R (compact disc recordable), CD-R/W (compactdisc rewritable), and semiconductor memories (such as mask ROM, PROM(programmable ROM), EPROM (erasable PROM), flash ROM, RAM (random accessmemory), etc.). The program may be provided to a computer using any typeof transitory computer readable media. Examples of transitory computerreadable media include electric signals, optical signals, andelectromagnetic waves. Transitory computer readable media can providethe program to a computer via a wired communication line (e.g. electricwires, and optical fibers) or a wireless communication line.

From the disclosure thus described, it will be obvious that theembodiments of the disclosure may be varied in many ways. Suchvariations are not to be regarded as a departure from the spirit andscope of the disclosure, and all such modifications as would be obviousto one skilled in the art are intended for inclusion within the scope ofthe following claims.

What is claimed is:
 1. A holding apparatus comprising: a controllerconfigured to receive an instruction indicating a holding object; a handcamera configured to detect an indicated holding object; a tag readerconfigured detect a tag proximate to the holding object when theindicated holding object is detected; and a holding part configured tohold a container being configured to hold the indicated holding object,the container being provided with the tag based on tag information ofthe tag detected by the hand camera, wherein: the holding part includesa first finger and a second finger, the first finger and the secondfinger both being configured to open and close about a same axis.
 2. Theholding apparatus according to claim 1, wherein the tag informationincludes at least one of shape information of the container and holdingposition information of the container.
 3. The holding apparatusaccording to claim 1, wherein the tag is a marker of a two-dimensionalcode, and the holding part holds the container based on the taginformation and a position of the marker.
 4. The holding apparatusaccording to claim 1, wherein when the indicated holding object is notincluded in a predetermined holding object group, the holding part holdsthe indicated holding object without detecting the tag by the tagreader.
 5. A container provided with the tag and formed of a translucentmaterial to be held by the holding apparatus according to claim
 1. 6. Anon-transitory computer readable medium storing an object holdingprogram causing a computer to execute: receiving an instructionindicating a holding object; controlling a first detection unit todetect the indicated holding object; controlling a second detection unitto detect a tag proximate to the indicated holding object when theindicated holding object is detected; and controlling a holding part tohold a container provided with the tag based on tag information of thetag detected in the controlling of the second detection unit, thecontainer being configured to hold the indicated holding object, theholding part including a first finger and a second finger, the firstfinger and the second finger both being configured to open and closeabout a same axis.
 7. A target holding method comprising: sendinginstructions indicating a holding object; putting the indicated holdingobject in a container provided with a tag and formed of a translucentmaterial, the container being configured to hold the indicated holdingobject; and controlling a holding apparatus to hold the containercontaining the holding object indicated in the indicating, wherein thecontrolling comprises: controlling a first detection unit to detect theholding object indicated in the indicating; controlling a seconddetection unit to detect the tag when the holding object is detected inthe controlling of the first detection unit; and controlling a holdingpart to hold a container provided with the tag based on tag informationof the tag detected in the controlling of the second detection unit, theholding part including a first finger and a second finger, the firstfinger and the second finger both being configured to open and closeabout a same axis.